// root/config/index.ts
import devConfig from './dev.config';
import testConfig from './test.config';
import prodConfig from './prod.config';

let config: any;

switch (process.env.NODE_ENV) {
  case 'development':
    config = devConfig;
    break;
  case 'test':
    config = testConfig;
    break;
  case 'production':
    config = prodConfig;
    break;
  default:
    throw new Error('Invalid NODE_ENV');
}

mountToEnv(config)

/**
 * 挂载到全局 process.env 对象上，这意味着，你在项目任何地方都可以使用 process.env.{key} 来访问，你声明的环境变量。
 * @param config 
 */
function mountToEnv(config: object) {
  const values = Object.values(config)
  Object.keys(config).forEach((item: string, index: number) => {
    process.env[item] = values[index]
  })
}

export default config;
